Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changed how the builtin JServices (JParameterManager, JComponentManager, JLoggingService, JPluginLoader) get initialized. Previously,
app.SetParameterValue()
sometimes didn't have an effect depending the Service that used the parameter had already been initialized. This meant that:Now, the JApplication constructor sets up the services, but doesn't initialize any of them. All Services are meant to be initialized during JApplication::Initialize(). JApplication::SetParameter() and ProvideService() will throw an exception if the user attempts to call them after Initialize() finishes. Calling JApplication::GetService() before Initialize() starts will print a warning message. Currently we still need to be able to call GetService() before Initialize() for the sake of the "custom topologies" used by SubeventExample, TopologyTest, and SubeventTest. However, we will be changing this at two different levels in the near future: Firstly, users will be able to provide multiple instances of a JService and choose which one to use via a parameter. Secondly, SubeventExample won't even require a custom topology.